/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package org.hl7.v3;

import java.util.Arrays;
import java.util.Collections;
import java.util.List;

import org.eclipse.emf.common.util.Enumerator;

/**
 * <!-- begin-user-doc -->
 * A representation of the literals of the enumeration '<em><b>Nurse Practitioner HIPAA</b></em>',
 * and utility methods for working with them.
 * <!-- end-user-doc -->
 * <!-- begin-model-doc -->
 * specDomain: S13402 (C-0-T13129-A13130-A13363-S13402-cpt)
 * <!-- end-model-doc -->
 * @see org.hl7.v3.V3Package#getNursePractitionerHIPAA()
 * @model extendedMetaData="name='NursePractitionerHIPAA'"
 * @generated
 */
public enum NursePractitionerHIPAA implements Enumerator {
	/**
	 * The '<em><b>363L00000N</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #_363L00000N_VALUE
	 * @generated
	 * @ordered
	 */
	_363L00000N(0, "_363L00000N", "363L00000N"),

	/**
	 * The '<em><b>363LA2100N</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #_363LA2100N_VALUE
	 * @generated
	 * @ordered
	 */
	_363LA2100N(1, "_363LA2100N", "363LA2100N"),

	/**
	 * The '<em><b>363LA2200N</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #_363LA2200N_VALUE
	 * @generated
	 * @ordered
	 */
	_363LA2200N(2, "_363LA2200N", "363LA2200N"),

	/**
	 * The '<em><b>363LC1500N</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #_363LC1500N_VALUE
	 * @generated
	 * @ordered
	 */
	_363LC1500N(3, "_363LC1500N", "363LC1500N"),

	/**
	 * The '<em><b>363LC0200N</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #_363LC0200N_VALUE
	 * @generated
	 * @ordered
	 */
	_363LC0200N(4, "_363LC0200N", "363LC0200N"),

	/**
	 * The '<em><b>363LF0000N</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #_363LF0000N_VALUE
	 * @generated
	 * @ordered
	 */
	_363LF0000N(5, "_363LF0000N", "363LF0000N"),

	/**
	 * The '<em><b>363LG0600N</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #_363LG0600N_VALUE
	 * @generated
	 * @ordered
	 */
	_363LG0600N(6, "_363LG0600N", "363LG0600N"),

	/**
	 * The '<em><b>363LN0000N</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #_363LN0000N_VALUE
	 * @generated
	 * @ordered
	 */
	_363LN0000N(7, "_363LN0000N", "363LN0000N"),

	/**
	 * The '<em><b>363LN0005N</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #_363LN0005N_VALUE
	 * @generated
	 * @ordered
	 */
	_363LN0005N(8, "_363LN0005N", "363LN0005N"),

	/**
	 * The '<em><b>363LX0001N</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #_363LX0001N_VALUE
	 * @generated
	 * @ordered
	 */
	_363LX0001N(9, "_363LX0001N", "363LX0001N"),

	/**
	 * The '<em><b>363LX0106N</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #_363LX0106N_VALUE
	 * @generated
	 * @ordered
	 */
	_363LX0106N(10, "_363LX0106N", "363LX0106N"),

	/**
	 * The '<em><b>363LP0200N</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #_363LP0200N_VALUE
	 * @generated
	 * @ordered
	 */
	_363LP0200N(11, "_363LP0200N", "363LP0200N"),

	/**
	 * The '<em><b>363LP0223N</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #_363LP0223N_VALUE
	 * @generated
	 * @ordered
	 */
	_363LP0223N(12, "_363LP0223N", "363LP0223N"),

	/**
	 * The '<em><b>363LP0222N</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #_363LP0222N_VALUE
	 * @generated
	 * @ordered
	 */
	_363LP0222N(13, "_363LP0222N", "363LP0222N"),

	/**
	 * The '<em><b>363LP1700N</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #_363LP1700N_VALUE
	 * @generated
	 * @ordered
	 */
	_363LP1700N(14, "_363LP1700N", "363LP1700N"),

	/**
	 * The '<em><b>363LP2300N</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #_363LP2300N_VALUE
	 * @generated
	 * @ordered
	 */
	_363LP2300N(15, "_363LP2300N", "363LP2300N"),

	/**
	 * The '<em><b>363LP0808N</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #_363LP0808N_VALUE
	 * @generated
	 * @ordered
	 */
	_363LP0808N(16, "_363LP0808N", "363LP0808N"),

	/**
	 * The '<em><b>363LS0200N</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #_363LS0200N_VALUE
	 * @generated
	 * @ordered
	 */
	_363LS0200N(17, "_363LS0200N", "363LS0200N"),

	/**
	 * The '<em><b>363LW0102N</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #_363LW0102N_VALUE
	 * @generated
	 * @ordered
	 */
	_363LW0102N(18, "_363LW0102N", "363LW0102N");

	/**
	 * The '<em><b>363L00000N</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>363L00000N</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #_363L00000N
	 * @model literal="363L00000N"
	 * @generated
	 * @ordered
	 */
	public static final int _363L00000N_VALUE = 0;

	/**
	 * The '<em><b>363LA2100N</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>363LA2100N</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #_363LA2100N
	 * @model literal="363LA2100N"
	 * @generated
	 * @ordered
	 */
	public static final int _363LA2100N_VALUE = 1;

	/**
	 * The '<em><b>363LA2200N</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>363LA2200N</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #_363LA2200N
	 * @model literal="363LA2200N"
	 * @generated
	 * @ordered
	 */
	public static final int _363LA2200N_VALUE = 2;

	/**
	 * The '<em><b>363LC1500N</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>363LC1500N</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #_363LC1500N
	 * @model literal="363LC1500N"
	 * @generated
	 * @ordered
	 */
	public static final int _363LC1500N_VALUE = 3;

	/**
	 * The '<em><b>363LC0200N</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>363LC0200N</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #_363LC0200N
	 * @model literal="363LC0200N"
	 * @generated
	 * @ordered
	 */
	public static final int _363LC0200N_VALUE = 4;

	/**
	 * The '<em><b>363LF0000N</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>363LF0000N</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #_363LF0000N
	 * @model literal="363LF0000N"
	 * @generated
	 * @ordered
	 */
	public static final int _363LF0000N_VALUE = 5;

	/**
	 * The '<em><b>363LG0600N</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>363LG0600N</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #_363LG0600N
	 * @model literal="363LG0600N"
	 * @generated
	 * @ordered
	 */
	public static final int _363LG0600N_VALUE = 6;

	/**
	 * The '<em><b>363LN0000N</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>363LN0000N</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #_363LN0000N
	 * @model literal="363LN0000N"
	 * @generated
	 * @ordered
	 */
	public static final int _363LN0000N_VALUE = 7;

	/**
	 * The '<em><b>363LN0005N</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>363LN0005N</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #_363LN0005N
	 * @model literal="363LN0005N"
	 * @generated
	 * @ordered
	 */
	public static final int _363LN0005N_VALUE = 8;

	/**
	 * The '<em><b>363LX0001N</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>363LX0001N</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #_363LX0001N
	 * @model literal="363LX0001N"
	 * @generated
	 * @ordered
	 */
	public static final int _363LX0001N_VALUE = 9;

	/**
	 * The '<em><b>363LX0106N</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>363LX0106N</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #_363LX0106N
	 * @model literal="363LX0106N"
	 * @generated
	 * @ordered
	 */
	public static final int _363LX0106N_VALUE = 10;

	/**
	 * The '<em><b>363LP0200N</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>363LP0200N</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #_363LP0200N
	 * @model literal="363LP0200N"
	 * @generated
	 * @ordered
	 */
	public static final int _363LP0200N_VALUE = 11;

	/**
	 * The '<em><b>363LP0223N</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>363LP0223N</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #_363LP0223N
	 * @model literal="363LP0223N"
	 * @generated
	 * @ordered
	 */
	public static final int _363LP0223N_VALUE = 12;

	/**
	 * The '<em><b>363LP0222N</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>363LP0222N</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #_363LP0222N
	 * @model literal="363LP0222N"
	 * @generated
	 * @ordered
	 */
	public static final int _363LP0222N_VALUE = 13;

	/**
	 * The '<em><b>363LP1700N</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>363LP1700N</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #_363LP1700N
	 * @model literal="363LP1700N"
	 * @generated
	 * @ordered
	 */
	public static final int _363LP1700N_VALUE = 14;

	/**
	 * The '<em><b>363LP2300N</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>363LP2300N</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #_363LP2300N
	 * @model literal="363LP2300N"
	 * @generated
	 * @ordered
	 */
	public static final int _363LP2300N_VALUE = 15;

	/**
	 * The '<em><b>363LP0808N</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>363LP0808N</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #_363LP0808N
	 * @model literal="363LP0808N"
	 * @generated
	 * @ordered
	 */
	public static final int _363LP0808N_VALUE = 16;

	/**
	 * The '<em><b>363LS0200N</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>363LS0200N</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #_363LS0200N
	 * @model literal="363LS0200N"
	 * @generated
	 * @ordered
	 */
	public static final int _363LS0200N_VALUE = 17;

	/**
	 * The '<em><b>363LW0102N</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>363LW0102N</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #_363LW0102N
	 * @model literal="363LW0102N"
	 * @generated
	 * @ordered
	 */
	public static final int _363LW0102N_VALUE = 18;

	/**
	 * An array of all the '<em><b>Nurse Practitioner HIPAA</b></em>' enumerators.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private static final NursePractitionerHIPAA[] VALUES_ARRAY =
		new NursePractitionerHIPAA[] {
			_363L00000N,
			_363LA2100N,
			_363LA2200N,
			_363LC1500N,
			_363LC0200N,
			_363LF0000N,
			_363LG0600N,
			_363LN0000N,
			_363LN0005N,
			_363LX0001N,
			_363LX0106N,
			_363LP0200N,
			_363LP0223N,
			_363LP0222N,
			_363LP1700N,
			_363LP2300N,
			_363LP0808N,
			_363LS0200N,
			_363LW0102N,
		};

	/**
	 * A public read-only list of all the '<em><b>Nurse Practitioner HIPAA</b></em>' enumerators.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public static final List<NursePractitionerHIPAA> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));

	/**
	 * Returns the '<em><b>Nurse Practitioner HIPAA</b></em>' literal with the specified literal value.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public static NursePractitionerHIPAA get(String literal) {
		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
			NursePractitionerHIPAA result = VALUES_ARRAY[i];
			if (result.toString().equals(literal)) {
				return result;
			}
		}
		return null;
	}

	/**
	 * Returns the '<em><b>Nurse Practitioner HIPAA</b></em>' literal with the specified name.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public static NursePractitionerHIPAA getByName(String name) {
		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
			NursePractitionerHIPAA result = VALUES_ARRAY[i];
			if (result.getName().equals(name)) {
				return result;
			}
		}
		return null;
	}

	/**
	 * Returns the '<em><b>Nurse Practitioner HIPAA</b></em>' literal with the specified integer value.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public static NursePractitionerHIPAA get(int value) {
		switch (value) {
			case _363L00000N_VALUE: return _363L00000N;
			case _363LA2100N_VALUE: return _363LA2100N;
			case _363LA2200N_VALUE: return _363LA2200N;
			case _363LC1500N_VALUE: return _363LC1500N;
			case _363LC0200N_VALUE: return _363LC0200N;
			case _363LF0000N_VALUE: return _363LF0000N;
			case _363LG0600N_VALUE: return _363LG0600N;
			case _363LN0000N_VALUE: return _363LN0000N;
			case _363LN0005N_VALUE: return _363LN0005N;
			case _363LX0001N_VALUE: return _363LX0001N;
			case _363LX0106N_VALUE: return _363LX0106N;
			case _363LP0200N_VALUE: return _363LP0200N;
			case _363LP0223N_VALUE: return _363LP0223N;
			case _363LP0222N_VALUE: return _363LP0222N;
			case _363LP1700N_VALUE: return _363LP1700N;
			case _363LP2300N_VALUE: return _363LP2300N;
			case _363LP0808N_VALUE: return _363LP0808N;
			case _363LS0200N_VALUE: return _363LS0200N;
			case _363LW0102N_VALUE: return _363LW0102N;
		}
		return null;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private final int value;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private final String name;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private final String literal;

	/**
	 * Only this class can construct instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private NursePractitionerHIPAA(int value, String name, String literal) {
		this.value = value;
		this.name = name;
		this.literal = literal;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public int getValue() {
	  return value;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public String getName() {
	  return name;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public String getLiteral() {
	  return literal;
	}

	/**
	 * Returns the literal value of the enumerator, which is its string representation.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public String toString() {
		return literal;
	}
	
} //NursePractitionerHIPAA
